home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* The Screen Machine Runtime Setup '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Avalilable Disk Space ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST CHECK = 2500 CONST SMALLWIN = 6300 CONST RESTART = 101 CONST BADPATH = 6400 CONST DESTPATH1 = 7801 CONST LEAVEALONE = 7802 CONST SPI_SETSCREENSAVEACTIVE=17 CONST SPI_SETSCREENSAVETIMEOUT=15 CONST SPIF_UPDATEINIFILE=1 CONST SPIF_SENDWININICHAGE=2 CONST SW_SHOWMAXIMIZED = 3 ''Bitmap ID CONST LOGO = 1 GLOBAL SizeReq& '' Total Disk Size required for installation ''File Types GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL WinSys32Dir$ GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL CHECKSTATES$ GLOBAL MinorVer% GLOBAL DEST2$ ''Default destination directory. GLOBAL DEST3$ GLOBAL REDO$ DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION SystemParametersInfo LIB "user.exe" (uAction%, uParam%, lpvParam&, fuWinIni%) AS INTEGER DECLARE FUNCTION ShowWindow LIB "User"(hWnd%,iShow%) AS INTEGER DECLARE FUNCTION pmDeleteGroup LIB "pmdde.dll" (Group$) AS INTEGER DECLARE FUNCTION pmShowGroup LIB "pmdde.dll" (Group$, Cmd%) AS INTEGER DECLARE FUNCTION pmDeleteItem LIB "pmdde.dll" (Group$) AS INTEGER INIT: hwnd% = HwndFrame() junk% = ShowWindow(hwnd%,SW_SHOWMAXIMIZED) CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF 'Prevents installation on 286 IF Processor% < 3 THEN i% = DoMsgBox("The Screen Machine requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF SetBitmap CUIDLL$, LOGO SetTitle "The Screen Machine" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ WINDRIVE$ = MID$(GetWindowsDir, 1, 1) DEST2$ = WINDRIVE$ + ":\SCRMACH" SetCopyGaugePosition 85,120 WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: SetSymbolValue "EditTextIn", DEST2$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH1, "FEditDlgProc", APPHELP, HELPPROC$) DEST2$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST2$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO GETPATH END IF LEAVEALONE: SrcDir$ = GetSymbolValue("STF_SRCDIR") DEST3$ = DEST2$ +"\MEDIA" REDO$ = UIStartDlg(CUIDLL$, LEAVEALONE, "FQuitDlgProc", 0, "") IF REDO$ = "CONTINUE" THEN CreateIniKeyValue WinDir$ +"system.ini", "boot", "SCRNSAVE.EXE", WinDir$ +"SCRMACH.SCR", cmoOverwrite i%=SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE) i%=SystemParametersInfo (SPI_SETSCREENSAVETIMEOUT, 180, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE) CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "PWProtected", "0", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "Sound", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "Warnings", "0", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "DelayTime", "3", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "FastVideoCard", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "HoldImage", "100", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "TrueColor", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "PlayVideoOne", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "TileOne", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "CenterOne", "0", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "EventOne", "2", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "EventSeven", "1", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ScreenSaver.Screen Machine", "FirstMovie", MakePath(DEST3$, "kite.avi"), cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "ImageOne", MakePath(DEST3$, "scene1.cmp"), cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "ImageTwo", MakePath(DEST3$, "scene2.cmp"), cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "EffectOne", "16", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "ImageGroupOne", "EffectTwo", "16", cmoOverwrite UIPop 1 GOTO CHECK ELSEIF REDO$ = "EXIT" THEN CreateIniKeyValue WinDir$ +"system.ini", "boot", "SCRNSAVE.EXE", WinDir$ +"SCRMACH.SCR", cmoOverwrite i%=SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE+SPIF_SENDWININICHANGE) UIPop 1 GOTO CHECK ELSE UIPop 1 GOTO CHECK END IF ''UIPop 1 CHECK: ''Prepare Copy list and check size ClearCopyList SrcDir$ = GetSymbolValue("STF_SRCDIR") DEST3$ = DEST2$ +"\MEDIA" AddSectionFilesToCopyList "Config Files", SrcDir$, Dest2$ AddSectionFilesToCopyList "Media Files", SrcDir$, Dest3$ AddSectionFilesToCopyList "Scr Files", SrcDir$, WinDir$ AddSectionFilesToCopyList "Sys Files", SrcDir$, WinSysDir$ '' Check windrive diskspace SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF Install QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ERRQUIT: i% = DoMsgBox("An installation problem occured, please contact Owen Associates", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SetRestartDir WinDir$ CopyFilesInCopyList sucess%=pmShowGroup ("The Screen Machine", 5) sucess%=pmDeleteItem ("Screen Machine") sucess%=pmDeleteItem ("Register") sucess%=pmDeleteItem ("Read Me") sucess%=pmDeleteGroup ("The Screen Machine") CreateProgmanGroup "The Screen Machine", "", cmoVital CreateProgmanItem "The Screen Machine", "Screen Machine", MakePath(DEST2$, "scrcfg.exe"), "", cmoOverwrite CreateProgmanItem "The Screen Machine", "Register", MakePath(DEST2$, "scrreg.hlp"), "scrreg.ico", cmoOverwrite CreateProgmanItem "The Screen Machine", "Read Me", "WRITE.EXE" + " " + MakePath(DEST2$,"scrmach.wri"), "", cmoOverwrite END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION